import os
import json
from openai import OpenAI
from openai import images

model="qwen-plus"

def other():
    print('other 逻辑')

# 意图识别
def intentionRecognize(content,intentions):
    items=intentions.items()
    systemContent=f'你是一个专业的意图识别助手，需要准确识别用户输入的意图。意图如下：'
    i=0
    for key,value in items:
        i=i+1
        systemContent=systemContent+f'{i}.{key}'
    systemContent=systemContent+',只需要输出识别到的意图，不需要输出其他内容。'
    print(systemContent)
    completion = client.chat.completions.create(
        model=model,
        # 此处以qwen-plus为例，可按需更换模型名称。模型列表：https://help.aliyun.com/zh/model-studio/getting-started/models
        messages=[
            {'role': 'system', 'content': systemContent},
            {'role': 'user', 'content': content}
        ],
    )
    print(completion.model_dump_json())
    data=json.loads(completion.model_dump_json())
    recognizedIntent = data["choices"][0]["message"]["content"]  # 提取 content 字段的值
    print(recognizedIntent)
    method=intentions[recognizedIntent]['method']
    if method is not None:
        method()
    subIntentions=intentions[recognizedIntent]['subIntentions']
    if subIntentions is not None:
        intentionRecognize(content,subIntentions)

if __name__ == '__main__':
    client = OpenAI(
        # 若没有配置环境变量，请用百炼API Key将下行替换为：api_key="sk-xxx",
        # api_key=os.getenv("DASHSCOPE_API_KEY"),
        api_key='sk-7ddd2c3285a04532b37e6c6e61307b35',
        base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    )
    intentions = {
        '网络不畅': {
            'method': None,
            'subIntentions': None
        },
        '音量不合适': {
            'method': None,
            'subIntentions': None
        },
        '有电流声': {
            'method': None,
            'subIntentions': None
        },
        '其他': {
            'method': other,
            'subIntentions': {
                '闲聊': {
                    'method': None,
                    'subIntentions': None
                },
                '建议': {
                    'method': None,
                    'subIntentions': {
                        '正向': {
                            'method': None,
                            'subIntentions': None
                        },
                        '负向': {
                            'method': None,
                            'subIntentions': None
                        },
                        '中性': {
                            'method': None,
                            'subIntentions': None
                        }
                    }
                }
            }
        }
    }
    intentionRecognize('能不能换个好点的耳机，这样音质好点',intentions)
    # print('hhhh')
    # # completion = client.chat.completions.create(
    # #     model="qwen-plus",
    # #     # 此处以qwen-plus为例，可按需更换模型名称。模型列表：https://help.aliyun.com/zh/model-studio/getting-started/models
    # #     # messages=[{'role': 'system', 'content': 'You are a helpful assistant.'},
    # #     #           {'role': 'user', 'content': '你是谁？'}],
    # #     messages=[{'role': 'system', 'content': '你是一个专业的意图识别助手，需要准确识别用户输入的意图。意图一共有三个：1.网络不畅 2.音量不合适 3.有电流声。如果用户输入的内容与这三个意图都不匹配，则判断是否是在闲聊，还是在提出意见建议等，如果闲聊则返回闲聊，如果提出建议则判断内容是正向、负向还是中性，分别输出正向、负向、中性。'},
    # #               {'role': 'user', 'content': '能不能换个好点的耳机，这样音质好点'}],
    # #     # stream=True,
    # #     # stream_options={"include_usage": True}
    # # )
    #
    # completion = client.chat.completions.create(
    #     model="qwen-plus",
    #     # 此处以qwen-plus为例，可按需更换模型名称。模型列表：https://help.aliyun.com/zh/model-studio/getting-started/models
    #     messages=[{'role': 'system', 'content': '你是一个专业的意图识别助手，需要准确识别用户输入的意图。意图一共有三个：1.网络不畅 2.音量不合适 3.有电流声。如果用户输入的内容与这三个意图都不匹配，则判断是否是在闲聊，还是在提出意见建议等，如果闲聊则返回闲聊，如果提出建议则判断内容是正向、负向还是中性，分别输出正向、负向、中性。'},
    #               {'role': 'user', 'content': '能不能换个好点的耳机，这样音质好点'}],
    # )
    #
    # # for chunk in completion:
    # #     print(chunk.model_dump_json())
    #
    # print(completion.model_dump_json())
